package br.com.insight.consultoria.integracao.dao;

import org.springframework.dao.DataAccessException;

import br.com.insight.consultoria.entity.UsuarioPadrao;
import br.com.insight.consultoria.erro.exception.InsightConstants;
import br.com.insight.consultoria.erro.exception.InsightDaoException;
import br.com.insight.consultoria.erro.exception.InsightException;
import br.com.insight.consultoria.erro.exception.SistemaException;
import br.com.insight.consultoria.integracao.dao.genericdao.GenericDAO;
import br.com.insight.consultoria.integracao.dao.interfacedao.UsuarioPadraoDAO;


public class UsuarioPadraoImpDAO extends GenericDAO implements UsuarioPadraoDAO{
	
	
	public UsuarioPadrao getUsuarioPadrao(Long idUsuarioPadrao)throws InsightException {
		
		try{
	
		return (UsuarioPadrao) getEntityById(UsuarioPadrao.class, idUsuarioPadrao);
		
		}catch(DataAccessException sql){
			
			throw new InsightDaoException(InsightConstants.MENSAGEM_ERRO_ACESSO_BANCO,sql);
		
		}catch(Exception ex){
			
			throw new SistemaException(InsightConstants.MENSAGEM_ERRO_NAO_TRATADO,ex);
			
		}
	}
	
	public void inserir(UsuarioPadrao usuarioPadrao) throws InsightException{
		
		try{
		
			saveOrUpdateEntity(usuarioPadrao);
		
		}catch(DataAccessException sql){
			
			throw new InsightDaoException(InsightConstants.MENSAGEM_ERRO_ACESSO_BANCO,sql);
		
		}catch(Exception ex){
			
			throw new SistemaException(InsightConstants.MENSAGEM_ERRO_NAO_TRATADO,ex);
			
		}
	}
	
	@Override
	public void alterar(UsuarioPadrao usuarioPadrao) throws InsightException {
		
	try{	
		
	
		saveOrUpdateEntity(usuarioPadrao);
		
	}catch(DataAccessException sql){
		
		throw new InsightDaoException(InsightConstants.MENSAGEM_ERRO_ACESSO_BANCO,sql);
	
	}catch(Exception ex){
		
		throw new SistemaException(InsightConstants.MENSAGEM_ERRO_NAO_TRATADO,ex);
		
	}	
		
	}
	
}
